3ee44fd75753f4bf1b9ccaee572fe12656780717,jetty-client/src/main/java/org/eclipse/jetty/client/HttpDestination.java,HttpDestination,getIdleConnection,#,206

Before Change


            // Find an idle connection
            while (_idle.size() > 0)
            {
                HttpConnection connection = _idle.remove(_idle.size() - 1);
                long last = connection.getLast();
                if (connection.getEndPoint().isOpen() && (last == 0 || ((now - last) < idleTimeout)))
                    return connection;
                else
                {
                    _connections.remove(connection);
                    connection.getEndPoint().close();
                }
            }

After Change


    {
        long now = System.currentTimeMillis();
        long idleTimeout=_client.getIdleTimeout();
        HttpConnection connection = null;
        while (true)
        {
            synchronized (this)
            {
                if (_idle.size() > 0)
                    connection = _idle.remove(_idle.size()-1);
            }
            
            if (connection==null)
                return null;

            long last = connection.getLast();
            if (connection.getEndPoint().isOpen() && (last==0 || ((now-last)<idleTimeout)) )
                return connection;

            _connections.remove(connection);
            connection.getEndPoint().close();
            connection=null;
        }